package com.xxxx.yoyo.adminweb;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.xxxx.yoyo.bean.Order;
import com.xxxx.yoyo.service.IOrderService;
import com.xxxx.yoyo.service.impl.OrderServiceImpl;
import com.xxxx.yoyo.util.PageUtil;

/**
 * 订单管理页面
 * Servlet implementation class OrderListServlet
 */
@WebServlet(name = "AdminOrderListServlet", urlPatterns = { "/admin/orderList" })
public class OrderListServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	private IOrderService orderService = new OrderServiceImpl();
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//设置导航条上的[订单管理]处于选中状态
		request.setAttribute("flag", 1);
		
		//获取前端传递过来的请求参数status,page,size
		String statusstr = request.getParameter("status");//订单状态  1表示未付款，2表示已付款，3表示配送中，4表示已完成
		int status = Integer.parseInt(statusstr);
		String pagestr = request.getParameter("page");
		int page = Integer.parseInt(pagestr);
		String siezstr = request.getParameter("size");
		int size = Integer.parseInt(siezstr);
		
		//根据 [订单的状态] 选中页面中订单的子分类
		request.setAttribute("status", status);
		
		//根据[订单的状态]获取订单列表
		if(status == 0) {//获取所有订单
			//根据页码以及每页条数获取订单列表
			List<Order> orderList = orderService.getOrderList(page, size);
			//把orderList存入request,供/admin/order_list.jsp使用
			request.setAttribute("orderList", orderList);
			
			//获取订单的总条数
			long count = orderService.getOrderCount();
			
			//获取分页信息
			String pageInfo = PageUtil.getPageTool(request,count,page,size);
			//把pageInfo存入request中，供/admin/order list.jsp使用
			request.setAttribute ("pageTool", pageInfo);
		}else {//根据订单的状态获取订单列表 1表示未付款，2表示已付款，3表示配送中，4表示已完成
			//根据订单状态，页码，每页条数查询订单列表
			List<Order> orderList = orderService.getOrderList(status, page, size);
			//把orderList存入request,供/admin/order list.jsp使用
			request.setAttribute("orderList", orderList);
			
			//根据订单状态获取订单数量
			long count = orderService.getOrderCount(status);
			
			//获取分页信息
			String pageInfo = PageUtil.getPageTool(request,count,page,size);
			//把pageInfo存入request中，供/admin/order list.jsp使用
			request.setAttribute ("pageTool", pageInfo);
		}
		
		
		//请求转发，跳转到/admin/order_list.jsp
		request.getRequestDispatcher("/admin/order_list.jsp").forward(request, response);
	}

}
